The virtualization of computing systems has enabled the flexible and convenient setup and maintenance of computing systems. A computing system is virtualized by having a virtual machine operate remotely from the client computing system that the virtual machine serves. The virtual machine emulates the logic of a fully operational computing system including the operating system, its various applications, and corresponding settings, and interfaces with the user via a remotely located client computing system. For instance, the virtual machine receives client input from the remote client, and provides resulting desktop image information back to the client. The client does not operate the corresponding operating system, but rather just receives the user input, and renders the desktop using the resulting desktop image provided by the virtual machine.
The virtual machine operates on a host computing system (also referred to in the art as a “host” or “node” in the technical art of virtualization). The host typically operates many other virtual machines. The hardware used by the virtual machine is also often on the host, including processing resources, storage, network, memory, and so forth. Each virtual machine maintains the proper emulation of an isolated computing system by interfacing with the available hardware through a hypervisor. Furthermore, virtualization software can redirect input/output (I/O) calls from the virtual machine to a remote storage service thus virtualizing the storage resource provided by the remote storage service.